package com.nativetalk.dao;

import com.nativetalk.base.Page;
import com.nativetalk.bean.member.course.TdNtMembCourseDetail;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created by lizhun on 16/1/11.
 * Modified by wangzheng on 17/02/16
 */
@MyBatisRepository
public interface TdNtMembCourseDao {

    /**
     * @Purpose
     * @Purpose  根据用户id和课程id查找用户最后一条记录
     * @version  2.0
     * @author   lizhun
     * @param    memb_id
     * @param    cou_id
     * @return   TdNtMembCourseDetail
     */
    public TdNtMembCourseDetail findTdNtMembCourseDetail(@Param("memb_id") int memb_id,@Param("cou_id") int cou_id);

    /**
     * @Purpose
     * @Purpose  根据用户id查找用户最后一条记录
     * @version  2.0
     * @author   lizhun
     * @param    memb_id
     * @return   TdNtMembCourseDetail
     */
    public TdNtMembCourseDetail findTdNtMembCourseDetailByMembId(@Param("memb_id") int memb_id);
    /**
     * @Purpose
     * @Purpose  查找用户所有已学习课程数量
     * @version  2.0
     * @author   lizhun
     * @param    page
     * @return   int
     */
    public int findTdNtMembCourseDetailByMembIdSize(Page page);
    /**
     * @Purpose
     * @Purpose  查找用户所有已学习课程分页
     * @version  2.0
     * @author   lizhun
     * @param    page
     * @return   List<TdNtMembCourseDetail>
     */
    public List<TdNtMembCourseDetail> findTdNtMembCourseDetailByMembIdPage(Page page);
    /**
     * @Purpose
     * @Purpose  添加课程
     * @version  2.0
     * @author   lizhun
     * @param    tdNtMembCourseDetail
     * @return   void
     */
    public void insertTdNtMembCourse(TdNtMembCourseDetail tdNtMembCourseDetail);
    /**
     * @Purpose
     * @Purpose  更新课程
     * @version  2.0
     * @author   lizhun
     * @param    tdNtMembCourseDetail
     * @return   void
     */
    public void updateTdNtMembCourse(TdNtMembCourseDetail tdNtMembCourseDetail);

    /**
     * @Purpose
     * @Purpose  根据用户id查找用户开始学习的课程
     * @version  4.1
     * @author   wangzheng
     * @param    memb_id
     * @return   List<TdNtMembCourseDetail>
     */
    public List<TdNtMembCourseDetail> findTtMembCourseDetailByMembId(Integer memb_id);

    /**
     * 根据课程id 查询学生购买该课程体验套餐的次数
     *
     * @param memb_id
     * @param cou_id
     * @return
     */
    Integer findBuySetmealOfCourse(@Param("memb_id") Integer memb_id, @Param("cou_id") Integer cou_id);

    /**
     * 根据分类id 查询学生购买该课程体验套餐的次数
     *
     * @param memb_id
     * @param cate_id
     * @return
     */
    Integer findBuySetmealOfCourseWithCateId(@Param("memb_id") Integer memb_id, @Param("cate_id") Integer cate_id);

    /**
     * 查询用户有没有购买过该课程
     * @param memb_id
     * @param cou_id
     * @return
     */
    Integer findMembIsBuy(@Param("memb_id") Integer memb_id, @Param("cou_id") Integer cou_id);
}
